# Q. What is this file?
# A. This file contains options which allow you to configure your multiworld experience while allowing
#    others to play how they want as well.
#
# Q. How do I use it?
# A. The options in this file are weighted. This means the higher number you assign to a value, the
#    more chances you have for that option to be chosen. For example, an option like this:
#
#    map_shuffle:
#      on: 5
#      off: 15
#
#    Means you have 5 chances for map shuffle to occur, and 15 chances for map shuffle to be turned
#    off.
#
# Q. I've never seen a file like this before. What characters am I allowed to use?
# A. This is a .yaml file. You are allowed to use most characters.
#    To test if your yaml is valid or not, you can use this website:
#        http://www.yamllint.com/
#    You can also verify that your Archipelago options are valid at this site:
#        https://archipelago.gg/check

# Your name in-game, limited to 16 characters.
#     {player} will be replaced with the player's slot number.
#     {PLAYER} will be replaced with the player's slot number, if that slot number is greater than 1.
#     {number} will be replaced with the counter value of the name.
#     {NUMBER} will be replaced with the counter value of the name, if the counter value is greater than 1.
name: Player{number}

# Used to describe your yaml. Useful if you have multiple files.
description: Default Cursed Words Template

game: Cursed Words
requires:
  version: 0.6.7 # Version of Archipelago required for this yaml to work as expected.
  game:
    Cursed Words: 0.5.1 # Version of the world required for this yaml to work as expected.

Cursed Words:
  ################
  # Game Options #
  ################
  progression_balancing:
    # A system that can move progression earlier, to try and prevent the player from getting stuck and bored early.
    # 
    # A lower setting means more getting stuck. A higher setting means less getting stuck.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 0
    # Maximum value is 99
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-0-99: 0 # random value between 0 and 99
    disabled: 0 # equivalent to 0
    normal: 50 # equivalent to 50
    extreme: 0 # equivalent to 99

  accessibility:
    # Set rules for reachability of your items/locations.
    # 
    # **Full:** ensure everything can be reached and acquired.
    # 
    # **Minimal:** ensure what is needed to reach your goal can be acquired.
    full: 50
    minimal: 0

  #######################
  # Character Selection #
  #######################
  characters:
    # Select the character(s) to include.
    # 
    # To include all supported characters, set to [ "All" ] or [].
    # To select specific characters, set to a list of supported character names.
    # 
    # NOTE: Currently only supports Rodman, Nina Nix, Hayley Bayles, Sam Gambit, Bones the Dog and Octacles.
    #       Additional characters will be supported in a future update.
    ['Rodman', 'Nina Nix', 'Hayley Bayles', 'Bones the Dog', 'Sam Gambit', 'Octacles']

  starting_character:
    # Select the character (from the <Characters> option) to start with.
    # 
    # To select a random character from the <Characters> option, set to [ "Random" ] or []
    # To select a random character from a specific set, set to a list of one or more names from the <Characters> option.
    # 
    # Names in the list that do not match those selected from <Characters> are ignored.
    ['Random']

  sticker_synergies:
    # Each character logically requires 5 Stickers that synergise to 'reasonably' beat Stage 5.
    # 
    # To use the preset synergy, leave a character as [ "Default" ] or [].
    # To use a custom synergy, set a character to a list of exactly 5 Sticker names.
    # 
    # Stickers in the synergy will be guaranteed in the item pool and treated as progression items.
    Bones the Dog:
    - Default
    Hayley Bayles:
    - Default
    Nina Nix:
    - Default
    Octacles:
    - Default
    Rodman:
    - Default
    Sam Gambit:
    - Default

  stamp_synergies:
    # Each character logically requires 5 Stamps that synergise to 'reasonably' beat Stage 5.
    # 
    # To use the preset synergy, leave a character as [ "Default" ] or [].
    # To use a custom synergy, set a character to a list of exactly 5 Stamp names.
    # 
    # Stamps in the synergy will be guaranteed in the item pool and treated as progression items.
    Bones the Dog:
    - Default
    Hayley Bayles:
    - Default
    Nina Nix:
    - Default
    Octacles:
    - Default
    Rodman:
    - Default
    Sam Gambit:
    - Default

  ########
  # Goal #
  ########
  goal:
    # Select the condition that the character(s) must reach to achieve the goal.
    # 
    # Runs    -> All <Goal Characters> must successfully beat at least one run.
    # Michael -> All <Goal Characters> must successfully beat Michael at least once.
    # Crowns  -> All <Goal Characters> must beat the highest <Crowns> tier at least once.
    # 
    # Michael goal requires <Michael> = 'True' and will be automatically adjusted if prerequisite not met.
    # Crowns goal requires <Crowns> = 'Purple' (or higher) and will be automatically adjusted to 'Purple' if prerequisite not met.
    runs: 50
    michael: 0
    crowns: 0

  goal_characters:
    # Select the <Characters> that are required to complete the <Goal> condition to reach the goal.
    # 
    # To select all characters from the <Characters> option, set to [ "All" ] or []
    # To select characters from a specific set, set to a list of one or more names from the <Characters> option.
    # 
    # Names in the list that do not match those selected from <Characters> are ignored.
    ['Rodman', 'Nina Nix', 'Hayley Bayles', 'Bones the Dog', 'Sam Gambit', 'Octacles']

  #############
  # Deathlink #
  #############
  deathlink:
    # When you die, everyone who enabled death link dies. Of course, the reverse is true too.
    'false': 50
    'true': 0

  ##################
  # Core Locations #
  ##################
  crowns:
    # Include locations for clearing all stages up to a maximum Crown tier for all selected <Characters>.
    # 
    # Crown Tiers are unlocked by receiving '{Character}: Progressive Crown' items which make the next Crown Tier reachable for each selected <Characters>.
    # The selected Crown tier will include ALL CROWN TIERS BELOW IT because crown progression remains as per vanilla (you must beat Purple before you can move on to Yellow etc).
    # 
    # EXAMPLES:
    # None    -> Does not include any Crown tiers.
    # Yellow  -> Includes Purple and Yellow Crown tiers.
    # Green   -> Includes Purple, Yellow, Orange, Pink and Green tiers.
    # 
    # NOTE: If <Goal> = 'Crowns' and this setting is 'None', it will be automatically adjusted to 'Purple' to ensure generation succeeds.
    # 
    # WARNING: This setting will add (<Characters> count * <Crowns> count * 15) locations to your location pool.
    none: 50
    purple: 0
    yellow: 0
    orange: 0
    pink: 0
    green: 0
    blue: 0
    red: 0

  michael:
    # Include locations for obtaining 5 Fairies and beating Michael for all selected <Characters>.
    # 
    # NOTE: The earliest Michael can be reached is via a Purple Crown run so if <Crowns> = 'None', it will be automatically adjusted to 'Purple' to ensure generation succeeds.
    #       This means each of your selected <Characters> will need to receive one '{Character}: Progressive Crown' to reach Michael.
    # 
    # WARNING: This setting will add (<Characters> count * 8) locations to your location pool.
    'false': 50
    'true': 0

  money_earned:
    # Sets the highest 'Money Earned' amount to include as locations from a pre-defined scaling curve.
    # Value is clamped to the closest location value (equal to or less than) in the curve - e.g. 387 is clamped to 350.
    # 
    # Locations are checked when the total money gained during a single run is equal to or greater than the required amount.
    # 
    # DIFFICULTY GUIDE:
    # The higher the value, the less 'guarantee' there is of being able to check the locations, so please choose carefully.
    # 0 - 9       -> Excludes these locations entirely (minimum location is 10)
    # 10 - 200    -> Comfortably reachable
    # 201 - 350   -> May be trickier
    # 351 - 500   -> Likely quite challenging
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 0
    # Maximum value is 500
    200: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-0-500: 0 # random value between 0 and 500

  word_lengths:
    # Sets the highest 'Word Length' amount to include as locations.
    # 
    # Locations are checked when a submitted Word's tile length exactly matches the required amount.
    # 
    # DIFFICULTY GUIDE:
    # The higher the value, the less 'guarantee' there is of being able to check the locations, so please choose carefully.
    # 0       -> Excludes these locations entirely
    # 1 - 10  -> Comfortably reachable
    # 11 - 15 -> May be trickier
    # 16 - 20 -> Likely quite challenging
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 0
    # Maximum value is 20
    10: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-0-20: 0 # random value between 0 and 20

  word_scores:
    # Sets the highest 'Word Score' amount to include as locations from a pre-defined scaling curve.
    # Value is clamped to the closest location value (equal to or less than) in the curve - e.g. 1689 is clamped to 1500.
    # 
    # Locations are checked when a submitted Word's score is equal to or greater than the required amount.
    # 
    # DIFFICULTY GUIDE:
    # The higher the value, the less 'guarantee' there is of being able to check the locations, so please choose carefully.
    # 0 - 4           -> Excludes these locations entirely (minimum location is 5)
    # 5 - 2500        -> Comfortably reachable
    # 2501 - 5000     -> May be trickier
    # 5001 - 10000    -> Likely quite challenging
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 0
    # Maximum value is 10000
    2500: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-0-10000: 0 # random value between 0 and 10000

  ###################
  # Extra Locations #
  ###################
  bosssanity:
    # Add locations for defeating each "standard" boss type (Axolotl, Badger, Bat etc.)
    # 
    # WARNING: This setting will add 15 locations to your location pool.
    'false': 50
    'true': 0

  pinsanity:
    # Add locations for upgrading the Left and Right sides of each <Characters> Pin
    # 
    # WARNING: This setting will add (<Characters> count * 8) locations to your location pool.
    # 
    # NOTE: Does not currently support pin upgrade locations for the Michael stage.
    #       Support may be added in a future update
    'false': 50
    'true': 0

  shopsanity:
    # Add custom shopsanity items to the shop which can be purchased as locations.
    # 
    # NOTE: Locations are split as evenly as possible across both the Stickers and the Stamps sections of the shop.
    #       Shopsanity items have a 33% chance to appear in the first slot of each section resoectively.
    'false': 50
    'true': 0

  shopsanity_cost:
    # How much each <Shopsanity> item will cost to purchase.
    # 
    # NOTE: If <Shopsanity> = 'False' then this setting will be ignored.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 5
    # Maximum value is 25
    12: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-5-25: 0 # random value between 5 and 25

  shopsanity_limit:
    # Choose how many <Shopsanity> items will be added to the shop (and adds this many locations to your location pool).
    # 
    # NOTE: If <Shopsanity> = 'False' then this setting will be ignored.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 1
    # Maximum value is 30
    20: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-1-30: 0 # random value between 1 and 30

  tilesanity:
    # Add locations for both Buying and Submitting each Tile Colour and Glyph Type.
    # 
    # WARNING: This setting will add 26 locations to your location pool.
    # 
    # NOTE: Does not currently support the Purple, White, Gold, Pink, Green, Cactus and Glitch colours.
    #       Does not currently support the Item glyph type.
    #       Support may be added in a future update.
    'false': 50
    'true': 0

  ###################
  # Extra Shuffling #
  ###################
  shuffle_grid_size:
    # Grid are reduced to 3x3 Tiles.
    # 2x 'Progressive Grid Size' items are added to the item pool which increase the grid size to 4x4 and then 5x5.
    'false': 50
    'true': 0

  shuffle_inventory_slots:
    # Your inventory starts with all Sticker and Stamp Slots locked.
    # 5x 'Progressive Sticker Slot' and 5x 'Progressive Stamp Slot' items are added to the item pool, each unlocking one respective slot.
    'false': 50
    'true': 0

  shuffle_item_rarities:
    # The shop only stocks items of 'Common' rarity.
    # 2x 'Progressive Item Rarity' items are added to the item pool which allow 'Rare' and then 'Legendary' items to be stocked.
    'false': 50
    'true': 0

  shuffle_locked_tile_positions:
    # Grids have 10 fixed tile positions removed, making them un-usable.
    # 10x 'Progressive Tile Position' items are added to the item pool, each unlocking a tile position.
    # 
    # NOTE: The 10 positions are selected and balanced across the entire potential 5x5 grid size, meaning that
    #       any reduced grid sizes (from bosses or the <ShuffleGridSize> option) are still playable.
    'false': 50
    'true': 0

  ####################
  # Traps and Filler #
  ####################
  trap_percentage:
    # Customise percentage of Filler items in the item pool that are replaced with Trap items.
    # 
    # 0       -> Will not include trap items in the item pool.
    # 1 - 100 -> Will replace XX% of filler items in the item pool with trap items.
    # 
    # E.g. If your seed contains 20 Filler items and this value is set to '25', then 4 (25% of 20)
    #      filler items will be replaced with trap items.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 0
    # Maximum value is 100
    20: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-0-100: 0 # random value between 0 and 100

  trap_weighting:
    # Customise how often each Trap item can appear in the item pool, relative to the other Trap items.
    # This setting will be ignored if <Trap Percentage> = '0'
    # 
    # Higher numbers appear more often, lower numbers appear less often, '0' will exclude it entirely.
    # Items removed from the list will default to '1'.
    # 
    # At least one item must have a value greater than '0'.
    # 
    # E.g: { "$1": 3, "Consumable Tile": 1, "Extra Re-Roll": 0 }
    #      Makes '$1' three times more likely to appear than 'Consumable Tile' and 'Extra-Re-Roll' is excluded entirely.
    #      All unlisted items will be equally as likely to appear as 'Consumable Tile'.
    Force Grid Re-roll: 1
    Lose Money: 1

  filler_weighting:
    # Customise how often each Filler item can appear in the item pool, relative to the other Filler items.
    # 
    # Higher numbers appear more often, lower numbers appear less often, '0' will exclude it entirely.
    # Items removed from the list will default to '1'.
    # 
    # At least one item must have a value greater than '0'.
    # 
    # E.g: { "$1": 3, "Consumable Tile": 1, "Extra Re-Roll": 0 }
    #      Makes '$1' three times more likely to appear than 'Consumable Tile' and 'Extra-Re-Roll' is excluded entirely.
    #      All unlisted items will be equally as likely to appear as 'Consumable Tile'.
    $1: 1
    $2: 1
    $3: 1
    Consumable Tile: 1
    Extra Re-roll: 1
    Random Tile Boost: 1

  ###########################
  # Item & Location Options #
  ###########################
  local_items:
    # Forces these items to be in their native world.
    []

  non_local_items:
    # Forces these items to be outside their native world.
    []

  start_inventory:
    # Start with the specified amount of these items. Example: "Bomb: 1"
    {}

  start_inventory_from_pool:
    # Start with the specified amount of these items and don't place them in the world. Example: "Bomb: 1"
    # 
    # The game decides what the replacement items will be.
    {}

  start_hints:
    # Start with these item's locations prefilled into the ``!hint`` command.
    []

  start_location_hints:
    # Start with these locations and their item prefilled into the ``!hint`` command.
    []

  exclude_locations:
    # Prevent these locations from having an important item.
    []

  priority_locations:
    # Prevent these locations from having an unimportant item.
    []

  item_links:
    # Share part of your item pool with other players.
    []

  plando_items:
    # Generic items plando.
    []
